{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 树形图Tree diagram \n",
    "本文旨在描述如何使用Python实现基本的树形图。要实现这样的树形图，首先需要有一个数值矩阵。每一行代表一个实体（这里是一辆汽车）。每列都是描述汽车的变量。目标是将实体聚类以了解谁与谁有共同点。python下通过scipy中hierarchy.linkage进行聚类，hierarchy.dendrogram画树形图。参考文档：https://python-graph-gallery.com/dendrogram/   \n",
    "该章节主要内容有：\n",
    "1. 数据处理 data processing\n",
    "2. 基础树形图 basic dendrogram\n",
    "3. 自定义树形图 customised dendrogram\n",
    "4. 彩色树形图标签 color dendrogram labels  \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 数据处理 data processing  \n",
    "画树形图，往往第一列是数据实体名字，即物体种类。其他列分别为物体变量。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>model</th>\n",
       "      <th>mpg</th>\n",
       "      <th>cyl</th>\n",
       "      <th>disp</th>\n",
       "      <th>hp</th>\n",
       "      <th>drat</th>\n",
       "      <th>wt</th>\n",
       "      <th>qsec</th>\n",
       "      <th>vs</th>\n",
       "      <th>am</th>\n",
       "      <th>gear</th>\n",
       "      <th>carb</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Mazda RX4</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.620</td>\n",
       "      <td>16.46</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Mazda RX4 Wag</td>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.875</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Datsun 710</td>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>108.0</td>\n",
       "      <td>93</td>\n",
       "      <td>3.85</td>\n",
       "      <td>2.320</td>\n",
       "      <td>18.61</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Hornet 4 Drive</td>\n",
       "      <td>21.4</td>\n",
       "      <td>6</td>\n",
       "      <td>258.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.215</td>\n",
       "      <td>19.44</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Hornet Sportabout</td>\n",
       "      <td>18.7</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.440</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Valiant</td>\n",
       "      <td>18.1</td>\n",
       "      <td>6</td>\n",
       "      <td>225.0</td>\n",
       "      <td>105</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.460</td>\n",
       "      <td>20.22</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Duster 360</td>\n",
       "      <td>14.3</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.570</td>\n",
       "      <td>15.84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Merc 240D</td>\n",
       "      <td>24.4</td>\n",
       "      <td>4</td>\n",
       "      <td>146.7</td>\n",
       "      <td>62</td>\n",
       "      <td>3.69</td>\n",
       "      <td>3.190</td>\n",
       "      <td>20.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Merc 230</td>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>140.8</td>\n",
       "      <td>95</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.150</td>\n",
       "      <td>22.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Merc 280</td>\n",
       "      <td>19.2</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.30</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Merc 280C</td>\n",
       "      <td>17.8</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Merc 450SE</td>\n",
       "      <td>16.4</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>4.070</td>\n",
       "      <td>17.40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Merc 450SL</td>\n",
       "      <td>17.3</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.730</td>\n",
       "      <td>17.60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>Merc 450SLC</td>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.780</td>\n",
       "      <td>18.00</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>Cadillac Fleetwood</td>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>472.0</td>\n",
       "      <td>205</td>\n",
       "      <td>2.93</td>\n",
       "      <td>5.250</td>\n",
       "      <td>17.98</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>Lincoln Continental</td>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>460.0</td>\n",
       "      <td>215</td>\n",
       "      <td>3.00</td>\n",
       "      <td>5.424</td>\n",
       "      <td>17.82</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>Chrysler Imperial</td>\n",
       "      <td>14.7</td>\n",
       "      <td>8</td>\n",
       "      <td>440.0</td>\n",
       "      <td>230</td>\n",
       "      <td>3.23</td>\n",
       "      <td>5.345</td>\n",
       "      <td>17.42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>Fiat 128</td>\n",
       "      <td>32.4</td>\n",
       "      <td>4</td>\n",
       "      <td>78.7</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>2.200</td>\n",
       "      <td>19.47</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>Honda Civic</td>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>75.7</td>\n",
       "      <td>52</td>\n",
       "      <td>4.93</td>\n",
       "      <td>1.615</td>\n",
       "      <td>18.52</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>Toyota Corolla</td>\n",
       "      <td>33.9</td>\n",
       "      <td>4</td>\n",
       "      <td>71.1</td>\n",
       "      <td>65</td>\n",
       "      <td>4.22</td>\n",
       "      <td>1.835</td>\n",
       "      <td>19.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>Toyota Corona</td>\n",
       "      <td>21.5</td>\n",
       "      <td>4</td>\n",
       "      <td>120.1</td>\n",
       "      <td>97</td>\n",
       "      <td>3.70</td>\n",
       "      <td>2.465</td>\n",
       "      <td>20.01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>Dodge Challenger</td>\n",
       "      <td>15.5</td>\n",
       "      <td>8</td>\n",
       "      <td>318.0</td>\n",
       "      <td>150</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.520</td>\n",
       "      <td>16.87</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>AMC Javelin</td>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>304.0</td>\n",
       "      <td>150</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.435</td>\n",
       "      <td>17.30</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>Camaro Z28</td>\n",
       "      <td>13.3</td>\n",
       "      <td>8</td>\n",
       "      <td>350.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.73</td>\n",
       "      <td>3.840</td>\n",
       "      <td>15.41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>Pontiac Firebird</td>\n",
       "      <td>19.2</td>\n",
       "      <td>8</td>\n",
       "      <td>400.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.845</td>\n",
       "      <td>17.05</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>Fiat X1-9</td>\n",
       "      <td>27.3</td>\n",
       "      <td>4</td>\n",
       "      <td>79.0</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>1.935</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>Porsche 914-2</td>\n",
       "      <td>26.0</td>\n",
       "      <td>4</td>\n",
       "      <td>120.3</td>\n",
       "      <td>91</td>\n",
       "      <td>4.43</td>\n",
       "      <td>2.140</td>\n",
       "      <td>16.70</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>Lotus Europa</td>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>95.1</td>\n",
       "      <td>113</td>\n",
       "      <td>3.77</td>\n",
       "      <td>1.513</td>\n",
       "      <td>16.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>Ford Pantera L</td>\n",
       "      <td>15.8</td>\n",
       "      <td>8</td>\n",
       "      <td>351.0</td>\n",
       "      <td>264</td>\n",
       "      <td>4.22</td>\n",
       "      <td>3.170</td>\n",
       "      <td>14.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>Ferrari Dino</td>\n",
       "      <td>19.7</td>\n",
       "      <td>6</td>\n",
       "      <td>145.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.62</td>\n",
       "      <td>2.770</td>\n",
       "      <td>15.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>Maserati Bora</td>\n",
       "      <td>15.0</td>\n",
       "      <td>8</td>\n",
       "      <td>301.0</td>\n",
       "      <td>335</td>\n",
       "      <td>3.54</td>\n",
       "      <td>3.570</td>\n",
       "      <td>14.60</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>Volvo 142E</td>\n",
       "      <td>21.4</td>\n",
       "      <td>4</td>\n",
       "      <td>121.0</td>\n",
       "      <td>109</td>\n",
       "      <td>4.11</td>\n",
       "      <td>2.780</td>\n",
       "      <td>18.60</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  model   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  \\\n",
       "0             Mazda RX4  21.0    6  160.0  110  3.90  2.620  16.46   0   1   \n",
       "1         Mazda RX4 Wag  21.0    6  160.0  110  3.90  2.875  17.02   0   1   \n",
       "2            Datsun 710  22.8    4  108.0   93  3.85  2.320  18.61   1   1   \n",
       "3        Hornet 4 Drive  21.4    6  258.0  110  3.08  3.215  19.44   1   0   \n",
       "4     Hornet Sportabout  18.7    8  360.0  175  3.15  3.440  17.02   0   0   \n",
       "5               Valiant  18.1    6  225.0  105  2.76  3.460  20.22   1   0   \n",
       "6            Duster 360  14.3    8  360.0  245  3.21  3.570  15.84   0   0   \n",
       "7             Merc 240D  24.4    4  146.7   62  3.69  3.190  20.00   1   0   \n",
       "8              Merc 230  22.8    4  140.8   95  3.92  3.150  22.90   1   0   \n",
       "9              Merc 280  19.2    6  167.6  123  3.92  3.440  18.30   1   0   \n",
       "10            Merc 280C  17.8    6  167.6  123  3.92  3.440  18.90   1   0   \n",
       "11           Merc 450SE  16.4    8  275.8  180  3.07  4.070  17.40   0   0   \n",
       "12           Merc 450SL  17.3    8  275.8  180  3.07  3.730  17.60   0   0   \n",
       "13          Merc 450SLC  15.2    8  275.8  180  3.07  3.780  18.00   0   0   \n",
       "14   Cadillac Fleetwood  10.4    8  472.0  205  2.93  5.250  17.98   0   0   \n",
       "15  Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0   \n",
       "16    Chrysler Imperial  14.7    8  440.0  230  3.23  5.345  17.42   0   0   \n",
       "17             Fiat 128  32.4    4   78.7   66  4.08  2.200  19.47   1   1   \n",
       "18          Honda Civic  30.4    4   75.7   52  4.93  1.615  18.52   1   1   \n",
       "19       Toyota Corolla  33.9    4   71.1   65  4.22  1.835  19.90   1   1   \n",
       "20        Toyota Corona  21.5    4  120.1   97  3.70  2.465  20.01   1   0   \n",
       "21     Dodge Challenger  15.5    8  318.0  150  2.76  3.520  16.87   0   0   \n",
       "22          AMC Javelin  15.2    8  304.0  150  3.15  3.435  17.30   0   0   \n",
       "23           Camaro Z28  13.3    8  350.0  245  3.73  3.840  15.41   0   0   \n",
       "24     Pontiac Firebird  19.2    8  400.0  175  3.08  3.845  17.05   0   0   \n",
       "25            Fiat X1-9  27.3    4   79.0   66  4.08  1.935  18.90   1   1   \n",
       "26        Porsche 914-2  26.0    4  120.3   91  4.43  2.140  16.70   0   1   \n",
       "27         Lotus Europa  30.4    4   95.1  113  3.77  1.513  16.90   1   1   \n",
       "28       Ford Pantera L  15.8    8  351.0  264  4.22  3.170  14.50   0   1   \n",
       "29         Ferrari Dino  19.7    6  145.0  175  3.62  2.770  15.50   0   1   \n",
       "30        Maserati Bora  15.0    8  301.0  335  3.54  3.570  14.60   0   1   \n",
       "31           Volvo 142E  21.4    4  121.0  109  4.11  2.780  18.60   1   1   \n",
       "\n",
       "    gear  carb  \n",
       "0      4     4  \n",
       "1      4     4  \n",
       "2      4     1  \n",
       "3      3     1  \n",
       "4      3     2  \n",
       "5      3     1  \n",
       "6      3     4  \n",
       "7      4     2  \n",
       "8      4     2  \n",
       "9      4     4  \n",
       "10     4     4  \n",
       "11     3     3  \n",
       "12     3     3  \n",
       "13     3     3  \n",
       "14     3     4  \n",
       "15     3     4  \n",
       "16     3     4  \n",
       "17     4     1  \n",
       "18     4     2  \n",
       "19     4     1  \n",
       "20     3     1  \n",
       "21     3     2  \n",
       "22     3     2  \n",
       "23     3     4  \n",
       "24     3     2  \n",
       "25     4     1  \n",
       "26     5     2  \n",
       "27     5     2  \n",
       "28     5     4  \n",
       "29     5     6  \n",
       "30     5     8  \n",
       "31     4     2  "
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导入库\n",
    "import pandas as pd\n",
    "from matplotlib import pyplot as plt\n",
    "from scipy.cluster import hierarchy\n",
    "import numpy as np\n",
    "\n",
    "# Import the mtcars dataset from the web + keep only numeric variables\n",
    "url = 'https://python-graph-gallery.com/wp-content/uploads/mtcars.csv'\n",
    "df = pd.read_csv(url)\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mpg</th>\n",
       "      <th>cyl</th>\n",
       "      <th>disp</th>\n",
       "      <th>hp</th>\n",
       "      <th>drat</th>\n",
       "      <th>wt</th>\n",
       "      <th>qsec</th>\n",
       "      <th>vs</th>\n",
       "      <th>am</th>\n",
       "      <th>gear</th>\n",
       "      <th>carb</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>model</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Mazda RX4</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.620</td>\n",
       "      <td>16.46</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mazda RX4 Wag</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.875</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Datsun 710</th>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>108.0</td>\n",
       "      <td>93</td>\n",
       "      <td>3.85</td>\n",
       "      <td>2.320</td>\n",
       "      <td>18.61</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hornet 4 Drive</th>\n",
       "      <td>21.4</td>\n",
       "      <td>6</td>\n",
       "      <td>258.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.215</td>\n",
       "      <td>19.44</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hornet Sportabout</th>\n",
       "      <td>18.7</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.440</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Valiant</th>\n",
       "      <td>18.1</td>\n",
       "      <td>6</td>\n",
       "      <td>225.0</td>\n",
       "      <td>105</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.460</td>\n",
       "      <td>20.22</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Duster 360</th>\n",
       "      <td>14.3</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.570</td>\n",
       "      <td>15.84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 240D</th>\n",
       "      <td>24.4</td>\n",
       "      <td>4</td>\n",
       "      <td>146.7</td>\n",
       "      <td>62</td>\n",
       "      <td>3.69</td>\n",
       "      <td>3.190</td>\n",
       "      <td>20.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 230</th>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>140.8</td>\n",
       "      <td>95</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.150</td>\n",
       "      <td>22.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 280</th>\n",
       "      <td>19.2</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.30</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 280C</th>\n",
       "      <td>17.8</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SE</th>\n",
       "      <td>16.4</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>4.070</td>\n",
       "      <td>17.40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SL</th>\n",
       "      <td>17.3</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.730</td>\n",
       "      <td>17.60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SLC</th>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.780</td>\n",
       "      <td>18.00</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cadillac Fleetwood</th>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>472.0</td>\n",
       "      <td>205</td>\n",
       "      <td>2.93</td>\n",
       "      <td>5.250</td>\n",
       "      <td>17.98</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Lincoln Continental</th>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>460.0</td>\n",
       "      <td>215</td>\n",
       "      <td>3.00</td>\n",
       "      <td>5.424</td>\n",
       "      <td>17.82</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chrysler Imperial</th>\n",
       "      <td>14.7</td>\n",
       "      <td>8</td>\n",
       "      <td>440.0</td>\n",
       "      <td>230</td>\n",
       "      <td>3.23</td>\n",
       "      <td>5.345</td>\n",
       "      <td>17.42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fiat 128</th>\n",
       "      <td>32.4</td>\n",
       "      <td>4</td>\n",
       "      <td>78.7</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>2.200</td>\n",
       "      <td>19.47</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Honda Civic</th>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>75.7</td>\n",
       "      <td>52</td>\n",
       "      <td>4.93</td>\n",
       "      <td>1.615</td>\n",
       "      <td>18.52</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toyota Corolla</th>\n",
       "      <td>33.9</td>\n",
       "      <td>4</td>\n",
       "      <td>71.1</td>\n",
       "      <td>65</td>\n",
       "      <td>4.22</td>\n",
       "      <td>1.835</td>\n",
       "      <td>19.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toyota Corona</th>\n",
       "      <td>21.5</td>\n",
       "      <td>4</td>\n",
       "      <td>120.1</td>\n",
       "      <td>97</td>\n",
       "      <td>3.70</td>\n",
       "      <td>2.465</td>\n",
       "      <td>20.01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Dodge Challenger</th>\n",
       "      <td>15.5</td>\n",
       "      <td>8</td>\n",
       "      <td>318.0</td>\n",
       "      <td>150</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.520</td>\n",
       "      <td>16.87</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMC Javelin</th>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>304.0</td>\n",
       "      <td>150</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.435</td>\n",
       "      <td>17.30</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Camaro Z28</th>\n",
       "      <td>13.3</td>\n",
       "      <td>8</td>\n",
       "      <td>350.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.73</td>\n",
       "      <td>3.840</td>\n",
       "      <td>15.41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pontiac Firebird</th>\n",
       "      <td>19.2</td>\n",
       "      <td>8</td>\n",
       "      <td>400.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.845</td>\n",
       "      <td>17.05</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fiat X1-9</th>\n",
       "      <td>27.3</td>\n",
       "      <td>4</td>\n",
       "      <td>79.0</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>1.935</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Porsche 914-2</th>\n",
       "      <td>26.0</td>\n",
       "      <td>4</td>\n",
       "      <td>120.3</td>\n",
       "      <td>91</td>\n",
       "      <td>4.43</td>\n",
       "      <td>2.140</td>\n",
       "      <td>16.70</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Lotus Europa</th>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>95.1</td>\n",
       "      <td>113</td>\n",
       "      <td>3.77</td>\n",
       "      <td>1.513</td>\n",
       "      <td>16.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Ford Pantera L</th>\n",
       "      <td>15.8</td>\n",
       "      <td>8</td>\n",
       "      <td>351.0</td>\n",
       "      <td>264</td>\n",
       "      <td>4.22</td>\n",
       "      <td>3.170</td>\n",
       "      <td>14.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Ferrari Dino</th>\n",
       "      <td>19.7</td>\n",
       "      <td>6</td>\n",
       "      <td>145.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.62</td>\n",
       "      <td>2.770</td>\n",
       "      <td>15.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Maserati Bora</th>\n",
       "      <td>15.0</td>\n",
       "      <td>8</td>\n",
       "      <td>301.0</td>\n",
       "      <td>335</td>\n",
       "      <td>3.54</td>\n",
       "      <td>3.570</td>\n",
       "      <td>14.60</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Volvo 142E</th>\n",
       "      <td>21.4</td>\n",
       "      <td>4</td>\n",
       "      <td>121.0</td>\n",
       "      <td>109</td>\n",
       "      <td>4.11</td>\n",
       "      <td>2.780</td>\n",
       "      <td>18.60</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  \\\n",
       "model                                                                          \n",
       "Mazda RX4            21.0    6  160.0  110  3.90  2.620  16.46   0   1     4   \n",
       "Mazda RX4 Wag        21.0    6  160.0  110  3.90  2.875  17.02   0   1     4   \n",
       "Datsun 710           22.8    4  108.0   93  3.85  2.320  18.61   1   1     4   \n",
       "Hornet 4 Drive       21.4    6  258.0  110  3.08  3.215  19.44   1   0     3   \n",
       "Hornet Sportabout    18.7    8  360.0  175  3.15  3.440  17.02   0   0     3   \n",
       "Valiant              18.1    6  225.0  105  2.76  3.460  20.22   1   0     3   \n",
       "Duster 360           14.3    8  360.0  245  3.21  3.570  15.84   0   0     3   \n",
       "Merc 240D            24.4    4  146.7   62  3.69  3.190  20.00   1   0     4   \n",
       "Merc 230             22.8    4  140.8   95  3.92  3.150  22.90   1   0     4   \n",
       "Merc 280             19.2    6  167.6  123  3.92  3.440  18.30   1   0     4   \n",
       "Merc 280C            17.8    6  167.6  123  3.92  3.440  18.90   1   0     4   \n",
       "Merc 450SE           16.4    8  275.8  180  3.07  4.070  17.40   0   0     3   \n",
       "Merc 450SL           17.3    8  275.8  180  3.07  3.730  17.60   0   0     3   \n",
       "Merc 450SLC          15.2    8  275.8  180  3.07  3.780  18.00   0   0     3   \n",
       "Cadillac Fleetwood   10.4    8  472.0  205  2.93  5.250  17.98   0   0     3   \n",
       "Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0     3   \n",
       "Chrysler Imperial    14.7    8  440.0  230  3.23  5.345  17.42   0   0     3   \n",
       "Fiat 128             32.4    4   78.7   66  4.08  2.200  19.47   1   1     4   \n",
       "Honda Civic          30.4    4   75.7   52  4.93  1.615  18.52   1   1     4   \n",
       "Toyota Corolla       33.9    4   71.1   65  4.22  1.835  19.90   1   1     4   \n",
       "Toyota Corona        21.5    4  120.1   97  3.70  2.465  20.01   1   0     3   \n",
       "Dodge Challenger     15.5    8  318.0  150  2.76  3.520  16.87   0   0     3   \n",
       "AMC Javelin          15.2    8  304.0  150  3.15  3.435  17.30   0   0     3   \n",
       "Camaro Z28           13.3    8  350.0  245  3.73  3.840  15.41   0   0     3   \n",
       "Pontiac Firebird     19.2    8  400.0  175  3.08  3.845  17.05   0   0     3   \n",
       "Fiat X1-9            27.3    4   79.0   66  4.08  1.935  18.90   1   1     4   \n",
       "Porsche 914-2        26.0    4  120.3   91  4.43  2.140  16.70   0   1     5   \n",
       "Lotus Europa         30.4    4   95.1  113  3.77  1.513  16.90   1   1     5   \n",
       "Ford Pantera L       15.8    8  351.0  264  4.22  3.170  14.50   0   1     5   \n",
       "Ferrari Dino         19.7    6  145.0  175  3.62  2.770  15.50   0   1     5   \n",
       "Maserati Bora        15.0    8  301.0  335  3.54  3.570  14.60   0   1     5   \n",
       "Volvo 142E           21.4    4  121.0  109  4.11  2.780  18.60   1   1     4   \n",
       "\n",
       "                     carb  \n",
       "model                      \n",
       "Mazda RX4               4  \n",
       "Mazda RX4 Wag           4  \n",
       "Datsun 710              1  \n",
       "Hornet 4 Drive          1  \n",
       "Hornet Sportabout       2  \n",
       "Valiant                 1  \n",
       "Duster 360              4  \n",
       "Merc 240D               2  \n",
       "Merc 230                2  \n",
       "Merc 280                4  \n",
       "Merc 280C               4  \n",
       "Merc 450SE              3  \n",
       "Merc 450SL              3  \n",
       "Merc 450SLC             3  \n",
       "Cadillac Fleetwood      4  \n",
       "Lincoln Continental     4  \n",
       "Chrysler Imperial       4  \n",
       "Fiat 128                1  \n",
       "Honda Civic             2  \n",
       "Toyota Corolla          1  \n",
       "Toyota Corona           1  \n",
       "Dodge Challenger        2  \n",
       "AMC Javelin             2  \n",
       "Camaro Z28              4  \n",
       "Pontiac Firebird        2  \n",
       "Fiat X1-9               1  \n",
       "Porsche 914-2           2  \n",
       "Lotus Europa            2  \n",
       "Ford Pantera L          4  \n",
       "Ferrari Dino            6  \n",
       "Maserati Bora           8  \n",
       "Volvo 142E              2  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通常获得数据表格需要将车名设置行标题，这里model代表车的类型\n",
    "df = df.set_index('model')\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mpg</th>\n",
       "      <th>cyl</th>\n",
       "      <th>disp</th>\n",
       "      <th>hp</th>\n",
       "      <th>drat</th>\n",
       "      <th>wt</th>\n",
       "      <th>qsec</th>\n",
       "      <th>vs</th>\n",
       "      <th>am</th>\n",
       "      <th>gear</th>\n",
       "      <th>carb</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Mazda RX4</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.620</td>\n",
       "      <td>16.46</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mazda RX4 Wag</th>\n",
       "      <td>21.0</td>\n",
       "      <td>6</td>\n",
       "      <td>160.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.90</td>\n",
       "      <td>2.875</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Datsun 710</th>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>108.0</td>\n",
       "      <td>93</td>\n",
       "      <td>3.85</td>\n",
       "      <td>2.320</td>\n",
       "      <td>18.61</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hornet 4 Drive</th>\n",
       "      <td>21.4</td>\n",
       "      <td>6</td>\n",
       "      <td>258.0</td>\n",
       "      <td>110</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.215</td>\n",
       "      <td>19.44</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Hornet Sportabout</th>\n",
       "      <td>18.7</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.440</td>\n",
       "      <td>17.02</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Valiant</th>\n",
       "      <td>18.1</td>\n",
       "      <td>6</td>\n",
       "      <td>225.0</td>\n",
       "      <td>105</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.460</td>\n",
       "      <td>20.22</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Duster 360</th>\n",
       "      <td>14.3</td>\n",
       "      <td>8</td>\n",
       "      <td>360.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.21</td>\n",
       "      <td>3.570</td>\n",
       "      <td>15.84</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 240D</th>\n",
       "      <td>24.4</td>\n",
       "      <td>4</td>\n",
       "      <td>146.7</td>\n",
       "      <td>62</td>\n",
       "      <td>3.69</td>\n",
       "      <td>3.190</td>\n",
       "      <td>20.00</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 230</th>\n",
       "      <td>22.8</td>\n",
       "      <td>4</td>\n",
       "      <td>140.8</td>\n",
       "      <td>95</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.150</td>\n",
       "      <td>22.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 280</th>\n",
       "      <td>19.2</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.30</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 280C</th>\n",
       "      <td>17.8</td>\n",
       "      <td>6</td>\n",
       "      <td>167.6</td>\n",
       "      <td>123</td>\n",
       "      <td>3.92</td>\n",
       "      <td>3.440</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SE</th>\n",
       "      <td>16.4</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>4.070</td>\n",
       "      <td>17.40</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SL</th>\n",
       "      <td>17.3</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.730</td>\n",
       "      <td>17.60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Merc 450SLC</th>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>275.8</td>\n",
       "      <td>180</td>\n",
       "      <td>3.07</td>\n",
       "      <td>3.780</td>\n",
       "      <td>18.00</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Cadillac Fleetwood</th>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>472.0</td>\n",
       "      <td>205</td>\n",
       "      <td>2.93</td>\n",
       "      <td>5.250</td>\n",
       "      <td>17.98</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Lincoln Continental</th>\n",
       "      <td>10.4</td>\n",
       "      <td>8</td>\n",
       "      <td>460.0</td>\n",
       "      <td>215</td>\n",
       "      <td>3.00</td>\n",
       "      <td>5.424</td>\n",
       "      <td>17.82</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Chrysler Imperial</th>\n",
       "      <td>14.7</td>\n",
       "      <td>8</td>\n",
       "      <td>440.0</td>\n",
       "      <td>230</td>\n",
       "      <td>3.23</td>\n",
       "      <td>5.345</td>\n",
       "      <td>17.42</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fiat 128</th>\n",
       "      <td>32.4</td>\n",
       "      <td>4</td>\n",
       "      <td>78.7</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>2.200</td>\n",
       "      <td>19.47</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Honda Civic</th>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>75.7</td>\n",
       "      <td>52</td>\n",
       "      <td>4.93</td>\n",
       "      <td>1.615</td>\n",
       "      <td>18.52</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toyota Corolla</th>\n",
       "      <td>33.9</td>\n",
       "      <td>4</td>\n",
       "      <td>71.1</td>\n",
       "      <td>65</td>\n",
       "      <td>4.22</td>\n",
       "      <td>1.835</td>\n",
       "      <td>19.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Toyota Corona</th>\n",
       "      <td>21.5</td>\n",
       "      <td>4</td>\n",
       "      <td>120.1</td>\n",
       "      <td>97</td>\n",
       "      <td>3.70</td>\n",
       "      <td>2.465</td>\n",
       "      <td>20.01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Dodge Challenger</th>\n",
       "      <td>15.5</td>\n",
       "      <td>8</td>\n",
       "      <td>318.0</td>\n",
       "      <td>150</td>\n",
       "      <td>2.76</td>\n",
       "      <td>3.520</td>\n",
       "      <td>16.87</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AMC Javelin</th>\n",
       "      <td>15.2</td>\n",
       "      <td>8</td>\n",
       "      <td>304.0</td>\n",
       "      <td>150</td>\n",
       "      <td>3.15</td>\n",
       "      <td>3.435</td>\n",
       "      <td>17.30</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Camaro Z28</th>\n",
       "      <td>13.3</td>\n",
       "      <td>8</td>\n",
       "      <td>350.0</td>\n",
       "      <td>245</td>\n",
       "      <td>3.73</td>\n",
       "      <td>3.840</td>\n",
       "      <td>15.41</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pontiac Firebird</th>\n",
       "      <td>19.2</td>\n",
       "      <td>8</td>\n",
       "      <td>400.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.08</td>\n",
       "      <td>3.845</td>\n",
       "      <td>17.05</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Fiat X1-9</th>\n",
       "      <td>27.3</td>\n",
       "      <td>4</td>\n",
       "      <td>79.0</td>\n",
       "      <td>66</td>\n",
       "      <td>4.08</td>\n",
       "      <td>1.935</td>\n",
       "      <td>18.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Porsche 914-2</th>\n",
       "      <td>26.0</td>\n",
       "      <td>4</td>\n",
       "      <td>120.3</td>\n",
       "      <td>91</td>\n",
       "      <td>4.43</td>\n",
       "      <td>2.140</td>\n",
       "      <td>16.70</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Lotus Europa</th>\n",
       "      <td>30.4</td>\n",
       "      <td>4</td>\n",
       "      <td>95.1</td>\n",
       "      <td>113</td>\n",
       "      <td>3.77</td>\n",
       "      <td>1.513</td>\n",
       "      <td>16.90</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Ford Pantera L</th>\n",
       "      <td>15.8</td>\n",
       "      <td>8</td>\n",
       "      <td>351.0</td>\n",
       "      <td>264</td>\n",
       "      <td>4.22</td>\n",
       "      <td>3.170</td>\n",
       "      <td>14.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Ferrari Dino</th>\n",
       "      <td>19.7</td>\n",
       "      <td>6</td>\n",
       "      <td>145.0</td>\n",
       "      <td>175</td>\n",
       "      <td>3.62</td>\n",
       "      <td>2.770</td>\n",
       "      <td>15.50</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Maserati Bora</th>\n",
       "      <td>15.0</td>\n",
       "      <td>8</td>\n",
       "      <td>301.0</td>\n",
       "      <td>335</td>\n",
       "      <td>3.54</td>\n",
       "      <td>3.570</td>\n",
       "      <td>14.60</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Volvo 142E</th>\n",
       "      <td>21.4</td>\n",
       "      <td>4</td>\n",
       "      <td>121.0</td>\n",
       "      <td>109</td>\n",
       "      <td>4.11</td>\n",
       "      <td>2.780</td>\n",
       "      <td>18.60</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  \\\n",
       "Mazda RX4            21.0    6  160.0  110  3.90  2.620  16.46   0   1     4   \n",
       "Mazda RX4 Wag        21.0    6  160.0  110  3.90  2.875  17.02   0   1     4   \n",
       "Datsun 710           22.8    4  108.0   93  3.85  2.320  18.61   1   1     4   \n",
       "Hornet 4 Drive       21.4    6  258.0  110  3.08  3.215  19.44   1   0     3   \n",
       "Hornet Sportabout    18.7    8  360.0  175  3.15  3.440  17.02   0   0     3   \n",
       "Valiant              18.1    6  225.0  105  2.76  3.460  20.22   1   0     3   \n",
       "Duster 360           14.3    8  360.0  245  3.21  3.570  15.84   0   0     3   \n",
       "Merc 240D            24.4    4  146.7   62  3.69  3.190  20.00   1   0     4   \n",
       "Merc 230             22.8    4  140.8   95  3.92  3.150  22.90   1   0     4   \n",
       "Merc 280             19.2    6  167.6  123  3.92  3.440  18.30   1   0     4   \n",
       "Merc 280C            17.8    6  167.6  123  3.92  3.440  18.90   1   0     4   \n",
       "Merc 450SE           16.4    8  275.8  180  3.07  4.070  17.40   0   0     3   \n",
       "Merc 450SL           17.3    8  275.8  180  3.07  3.730  17.60   0   0     3   \n",
       "Merc 450SLC          15.2    8  275.8  180  3.07  3.780  18.00   0   0     3   \n",
       "Cadillac Fleetwood   10.4    8  472.0  205  2.93  5.250  17.98   0   0     3   \n",
       "Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0     3   \n",
       "Chrysler Imperial    14.7    8  440.0  230  3.23  5.345  17.42   0   0     3   \n",
       "Fiat 128             32.4    4   78.7   66  4.08  2.200  19.47   1   1     4   \n",
       "Honda Civic          30.4    4   75.7   52  4.93  1.615  18.52   1   1     4   \n",
       "Toyota Corolla       33.9    4   71.1   65  4.22  1.835  19.90   1   1     4   \n",
       "Toyota Corona        21.5    4  120.1   97  3.70  2.465  20.01   1   0     3   \n",
       "Dodge Challenger     15.5    8  318.0  150  2.76  3.520  16.87   0   0     3   \n",
       "AMC Javelin          15.2    8  304.0  150  3.15  3.435  17.30   0   0     3   \n",
       "Camaro Z28           13.3    8  350.0  245  3.73  3.840  15.41   0   0     3   \n",
       "Pontiac Firebird     19.2    8  400.0  175  3.08  3.845  17.05   0   0     3   \n",
       "Fiat X1-9            27.3    4   79.0   66  4.08  1.935  18.90   1   1     4   \n",
       "Porsche 914-2        26.0    4  120.3   91  4.43  2.140  16.70   0   1     5   \n",
       "Lotus Europa         30.4    4   95.1  113  3.77  1.513  16.90   1   1     5   \n",
       "Ford Pantera L       15.8    8  351.0  264  4.22  3.170  14.50   0   1     5   \n",
       "Ferrari Dino         19.7    6  145.0  175  3.62  2.770  15.50   0   1     5   \n",
       "Maserati Bora        15.0    8  301.0  335  3.54  3.570  14.60   0   1     5   \n",
       "Volvo 142E           21.4    4  121.0  109  4.11  2.780  18.60   1   1     4   \n",
       "\n",
       "                     carb  \n",
       "Mazda RX4               4  \n",
       "Mazda RX4 Wag           4  \n",
       "Datsun 710              1  \n",
       "Hornet 4 Drive          1  \n",
       "Hornet Sportabout       2  \n",
       "Valiant                 1  \n",
       "Duster 360              4  \n",
       "Merc 240D               2  \n",
       "Merc 230                2  \n",
       "Merc 280                4  \n",
       "Merc 280C               4  \n",
       "Merc 450SE              3  \n",
       "Merc 450SL              3  \n",
       "Merc 450SLC             3  \n",
       "Cadillac Fleetwood      4  \n",
       "Lincoln Continental     4  \n",
       "Chrysler Imperial       4  \n",
       "Fiat 128                1  \n",
       "Honda Civic             2  \n",
       "Toyota Corolla          1  \n",
       "Toyota Corona           1  \n",
       "Dodge Challenger        2  \n",
       "AMC Javelin             2  \n",
       "Camaro Z28              4  \n",
       "Pontiac Firebird        2  \n",
       "Fiat X1-9               1  \n",
       "Porsche 914-2           2  \n",
       "Lotus Europa            2  \n",
       "Ford Pantera L          4  \n",
       "Ferrari Dino            6  \n",
       "Maserati Bora           8  \n",
       "Volvo 142E              2  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 同时需要删除行标索引的标题名\n",
    "del df.index.name\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. 基础树形图 basic dendrogram"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 执行分层聚类\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    "# 函数原型如下：\n",
    "# scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean', optimal_ordering=False)\n",
    "# y输入矩阵，method聚类方法，metric距离计算方法。通常ward比较靠谱\n",
    "# optimal_ordering重新排序链接矩阵，以使连续叶之间的距离最小，这样树形结构更为直观，但是计算速度变慢。\n",
    "# 参数选择见：https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Make the dendrogram\n",
    "plt.title('Hierarchical Clustering Dendrogram')\n",
    "plt.xlabel('sample index')\n",
    "plt.ylabel('distance (Ward)')\n",
    "# 画聚类图，常用参数labels设定横坐标下标，leaf_rotation标题旋转\n",
    "# 详细使用见：https://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.cluster.hierarchy.dendrogram.html\n",
    "hierarchy.dendrogram(Z, labels=df.index, leaf_rotation=90);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 自定义树形图 customised dendrogram  \n",
    "+ 叶标签 leaf label\n",
    "+ 聚类簇数 number of clusters\n",
    "+ 颜色 color\n",
    "+ 截减 truncate\n",
    "+ 方向 orientation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 叶标签 leaf label\n",
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    " \n",
    "# Plot with Custom leaves\n",
    "# 常用参数labels设定横坐标下标，leaf_rotation标题旋转，leaf_font_size设置字号\n",
    "hierarchy.dendrogram(Z, leaf_rotation=90, leaf_font_size=8, labels=df.index);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 聚类簇数 number of clusters\n",
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    " \n",
    "# Control number of clusters in the plot + add horizontal line.\n",
    "# color_threshold设定颜色阈值，小于olor_threshold根据簇节点为一簇\n",
    "hierarchy.dendrogram(Z, color_threshold=240)\n",
    "# 画水平线，y纵坐标，c颜色，lw线条粗细，linestyle线形\n",
    "plt.axhline(y=240, c='grey', lw=1, linestyle='dashed');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 颜色 color\n",
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    "\n",
    "# Set the colour of the cluster here: 设置聚类颜色\n",
    "hierarchy.set_link_color_palette(['#b30000','#996600', '#b30086'])\n",
    " \n",
    "# Make the dendrogram and give the colour above threshold\n",
    "# above_threshold_color设置color_threshold上方链接的颜色\n",
    "hierarchy.dendrogram(Z, color_threshold=240, above_threshold_color='grey')\n",
    " \n",
    "# Add horizontal line.\n",
    "plt.axhline(y=240, c='grey', lw=1, linestyle='dashed');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 截减 truncate\n",
    "# 原始观察矩阵很大时，树形图很难读取。截断用于压缩树形图。有几种模式：\n",
    "# 1 None 不执行截断\n",
    "# 2 lastp lastp设置叶子节点数，最底层节点数\n",
    "# 3 level 根据level设置图中层最大数\n",
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    "  \n",
    "# method 1: lastp\n",
    "# you will have 4 leaf at the bottom of the plot  \n",
    "hierarchy.dendrogram(Z, truncate_mode = 'lastp', p=4);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# method 2: level\n",
    "# No more than ``p`` levels of the dendrogram tree are displayed.\n",
    "hierarchy.dendrogram(Z, truncate_mode = 'level', p=2);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 方向 orientation\n",
    "\n",
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    " \n",
    "# Orientation of the dendrogram\n",
    "# 设置层次树的朝向，orientation可选\"top\", \"left\", \"bottom\", \"right\"，默认top\n",
    "hierarchy.dendrogram(Z, orientation=\"right\", labels=df.index);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Orientation of the dendrogram\n",
    "hierarchy.dendrogram(Z, orientation=\"bottom\", labels=df.index);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. 彩色树形图标签 color dendrogram labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbwAAAD8CAYAAAAMnxEHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzsnXecnFX1/9+bEEqA0EuIQigWkEgwYWQgJgsEUNqIomggEhBzKI6i+BURhGPEgn7xJ4yFE9pCIGChDM1QDXXggUAgtGCkGggE/EIowYRkf3/cO+yzk9nd2d3ZknDer9e+duY+tz370hzOvedzTkNzczOO4ziOs6ozoK834DiO4zi9gRs8x3Ec50OBGzzHcRznQ4EbPMdxHOdDgRs8x3Ec50OBGzzHcRznQ4EbPMdxHOdDgRs8x3Ec50OBGzzHcRznQ8Fq9Zxs4403bh4+fHg9p3Qcx1nlmTVr1mvNzc2b9PU+VnXqavCGDx/Ogw8+WM8pHcdxVnkaGhqeb+uZJtoIXAw8C7wJHKoZfa+WeePYFzSjz2iinwcGakZv6MzeNNHhwP3Ak7FJgIOBaZrR+TWMv1szOqairaAZzbczZhKAZrSpM3vtiLoaPMdxHKdHmKYZPVUTPQk4BLi0xnGNwN3AM5rRGd1Y/xbN6OGp77+q7KCJDtCMLq9lskpj15mx3cENnuM4Th14furDzJ/+RE8vMxvYWRPdEmgC1gCu1YyeqYkq8BFgOPAccBwwCThYE70VmEP4N/9iYAYwCFgIfFUzukwTPQPYA/gv8CXN6BttbUITbQLOAMYAXwDWAU7RREcDR8Ru39WMPgSsq4leDnwcOEYz+kDZ64vzvA18XBM9APhrfKf/A27q1l+qCh604jiOUwfmT3+CRbNf6ellxgJzgZOA0zWjuwN7aqJbxOePa0bHA1sCgwlG8UTN6ImpOd4HDtCMjiUcU+6pie4MbBPn24twdJpmb010pib69yp7ekMzuj/wb+CguMcccFp8/lHgW/HZ6VXG36MZ3Qf4IpBoRj8PvFXbn6NzuIfnOI5TJ4aM3IzdZh7W+YENh3fUY6ImujvwBHAt4R7tofjsYWDr+Pmx+PslYL025lobmKqJDgM2A/4JbAjcC6AZrVYzrvJIM82s+HsbYCfgHxXP52lG3wbe1kSr7Sk9/uGKtrriBs9xnFWCXjpSbJNFs19hyMjNemr6aZrRU8tfNNFngFHAncDOQCE+ShurBmApMLBirn2BpzWjEzTRn8d+c4EDgd/H+RvaMHzVKN+9PQs8oBk9JM4xKLZvp4muTTDAizoYvxNwY3yn+2pcv2b8SNNxnFWCXjpS7HXeefydkYufXTyu/F1Emt6a9dYVwBRN9F5gZjvRkjOBH2uip6Xa7gcO0kSvJ9z38fIFL38GeF4TvUcTvR1YT0S2FJHbFv5t4RXvvfDeviLy0fb2qRldCNygid6pif4D+FF89OLS/1t6e3Nz83XAlGpjRaRp4ZUL5wC7aaI3Aeu3+0dpPbZRRLappa97eI7jrDJ0+UixDtzbeFmPzLvovkWzgY05tKXt7dlvv3TWsWc1pvtpRjX1eZKIDDCz54BxrMhn0l/kAllBOiAXyKnAL/7w6z/cJiJrVqw1KX6cV9F+EXBRuu3lC17eGbgdGG9m78d+Y9LzyAXC+2+8v0QzemCVvXZEIzEStaOObvAcx3FWQkRkPeAyYAgw28y+IyKTSEVNisjFwCOEo8IjzGy2iBxNKpISGA2MEJGZQN7M5sRn7wKNIvKAmS2KazYCJxJsxxrAIWb2HxE5BxhJOLI8DNiAYPheB5L47DYROT+OPSLu8cdmdnNc7/sisiMw08xOE5FWkahmdqaINAFnmNm8uN99iJGoInKrmaWDc1bADZ7jOE6dWDT7lZ7y9CaKSNkD+yRBEjAZ+LOZTROR80Xks/H5G2Z2KICIbA58lnDfd4SIpCMpNwAuNLMvisg3zKyxYs3fAAo8ICKPEgwLwJpmtreIHApMFpHbgLXNbKyIHA4cA/wZ2JTg1S0Tkf3i5/dFZLCZXRQN9l+BssG7x8yOE5HrRWQYMRLVzO4SkZtEZFrlH8XMlkQjeLeZ3drRH9Hv8BzHcerAsAk79GjQipk1RqNUFpBvS0uk5oPAdvFzOsJxnpm9B8wn3IulIymvop27MjN7y8xONLNPxDknxkflSMrZcc229vGImS2rMvW+0Tu7liBZKFOedw4h6jQ9bzkStTIop1O4h+c4jlMHtpq8M1tN3rlrgzuWJVSjHKn5OOFY8nyC95fOWFJpIJ4FHjCzQwBEZFCVfsRn2wLPmFkzQaC+Rny0U+r3v+I+9olto2MbFfsoR4u+D5xMuFdcA7gn1WcnguxiR+APqfdLR6K+CQwVkReBj1XM3SHu4TmO46ycTAW+JiJ3Af81sw7D+M1sIXCDiNwpIq0iKUXkShH5ZKr7eOD+2C8HlI8Ul4rIDEIml6lmlgCL4z4mAOdWWfoG4BoR+TJwPcGI/RxIZ3MZF+d4xMz+DZwJTBGRewn3evOBSwjSianAgjhuJvBjEUlHolalobm5VqlFx4wePbrZk0c7jtMXlO/O+ipKszs0NDTMam5uHl3tWTZfbATGlwq5U1NthVIh12by5Y7I5ovDgTNKhVyHrmU2X/w6cCzQsN6yl97bctkjD0y1c39c4zqTgEtKhdzybL74I2BaqZDrMOF0O/ONBAaUCrmH2njeSMXfKo0faTqO0236WvQNPS787ld0x9h1hmy++CmC1za+VMgt+cqxPzummYbhnZhiEiHR9fJSIbdCwukuMJJgt6oavI5wg+c4Trcpi74/LAanK9TzPwqy+eLdpUJuTDZfbCLca40CbikVcj/N5oufpOVY8epSIXd2Nl+slA2k5yoRglLGAD8qFXLpqgqHAGeXCrklAH/900/OjWPGEyJFAU4tFXK3ZvPFmUCJcBR6LiH4ZCRwWzZfPJ+Qo7OccHpfWlKf7Q+sCVxISHW2EDg87rOy32Rgo2y+uAfwPwRZxiDg0VIhd1xHfzc3eI7j1IW+FH1Dzwm/60UP/kfBzFIh991svng/8FPgl8AxpULuqWy+OCCbL+4CrF0q5MZm88W0bKDMRoQMKIMI92NpgzcUeLnKmkpLoMoMoCwJ+Et8dktcbzbBO3w/my/ulRr/aqmQ+3o2XzwP+DRBJnFtqZC7PJsvHkswtNX6TQVWKxVy52fzxdWBvePcl2bzxY/RAW7wHMdxeok2/6Oga1GaZcoJoxfH3xuXCrmnAOLdWaVsoDLzysJSIfcqQDZfrJQpvAxsQYgETdNcKuQWxTFp6cFjpUJuaTZf7Ki2XXnPZbnE9sCobL4oBG/vcoLnWtkvzUbAn+Keh8d9totHaTqO46zcVEYeLszmix8HyOaLA2gJ74fWsoFq4yu1bX8DvpPNFwfF+UZn88W1gAHZfHFINl8cQmtJQOVe2pIMVK45F/h1qZBrLBVyuwJ/bKNfer4JwDWlQq6RIG/oUJfnHp7jOE6daO+erpvHmYdl88Vd4+cz2u0JPwbOy+aLzbTc4R2RzRfvItSZm0CNyZlLhdzj2XzxcsI9XAPwPHAk4Qj0ZoKRaU8OcANwTbzDa4+pcc/HxTlPbqPffUBTNl/ckXDnd0k2X/xiLe8CLktwHKcO9AdJQH/ZQ1uGrdxebX/tyRIARGQvgmFpIOSnPNrMXm9vLyIy08waY37NOcC6hPRep4rI3WY2pr3xbc0Z99AMXE3I0znezKrKANqY4ygzu7Cza9cwrxL0ejPb6uMenuM4Th1py6h1NahGRDYmGLsDzOwtEfk4sHqt482sKc7T2KUNrMhe5aoHXZzzKIJ31uu4wXMcx+kluphcen9CLs23AMzsaQAROZKKqgMisgtgwFOEKgplz+duQlqvVojIycDnCYEix5jZwyKyO/BrYAlwrpn9uXJcNSqrMJjZQx1UZvguMNHMfiAi8+N7bhj7GCtWgqhWHWJD4EpCwM4SQtaVNvGgFcdxnF6gG8ml25IG/Dkmk94L+EFsOw34IkGvtlUNc59tZuMImrfyHL8Ccma2B6GaQSW3ichMEUkXpd2YlioMOeC0am1mNhWYE/f9KLCDiAwnRGPuDuwG3EtLJYixwOBYCaJa29HA+Wa2H7BWRy/rHp7jOKsMPViep+b12zJq7SaXbl+WUJYGVLKviHyXcKe2aWxb38xeABCRp2vY8kQROYyQ6PmDgA4zey3+riYvqHakma7CQDttH2BmzSLyX2BPgv7vIGBj4H8JwvMbY9dyBYZtq7RtQ8jNCTVkX3EPz3GcVYIeLs/Tl9wIHC4i6wKIyHYiMpQQyfgFgvdUNkxvishHRGRtWqoJtMdxhIrh36IlrL9ZRDaKa9VqI8pVGMoljPZuow1aSw1mAd8mJJNeHVgjljOqJqWo1vYsLdUbOixV4R6e4zirBN0qz1MnesK7NLOFIvIz4HoRaQD+A3yTlqoDCS1VB35GqDP3NPBCDdMncY47U20nA9dF7+tcWmdlaW+PN4jIncAy4HYz+1llW9zfiyJyJXAKQT/3FTN7MxanfS1OORWYLiLfAh41s/tE5Kkqbf8ErhSRbwD/7WifLktwHKfb9AdJQH+gq3+HjmQJmugKsgTgLOAMzei8ru5XE50ErKYZ7Ugnlx7TCIzXjNYsRejCnuZoRmdVedattf1I03Ecpx+jiX4gS9CMjgVOogNZgiZa13/b6z1fe+toRpuqGbt64EeajuM4daQHAmf2B6ZpRt8C0Iw+DaCJAuQ10VHALZrRn2qiTcDbwMc10X8Bf9CMPqaJngC8CGwOTCSE8Z+YXkQTPY0QQLKcoJUDuIjgUd5IFe2cJjobmE24WzuN4HluDuQ0o//WRB8hVDH/OHCMZvQBTfQA4IcE+zNFMzpDE70PeBhYrIkuIsgoniBVDUEz2mE1hI5wD89xHKdO9FDgTFuyBICZmtExwH6ptns0o/sQjMXXYtsXCGm+csAemtE9CAYGAE10BDBMM9oIHE9Laq9NgUM1o20JxYcSqi8I8BPgQMJR61fj848SAmIOAk6PnuIPCIa1kVDiB0J05s81o99Pzf0asHd8vyGaaC1BOO3iHp7jOE6d6HLgTNdkCbBipQQIkY8QAkJUEx0OvKwZfU8TPR34kya6hGCgymwPNGqiM1NrAjyiGU1XQ6hkXpz3JeBJzejy+Hn71PO3gbc10fUIhm17WsoJbaqJNgCvakb/XTH3RnGvNVdD6Ag3eI7TR8yaNYs5c+b09TbqwqKRrzB69kf6ehurKjcCf9NEr9CMvqWJbge8E59VizpcDqAZbdZEE+A3wAXx2WzN6CRNdAKhGvkrsX0ucLNmNA+giQ4ChtEid2iL5jY+lyUO22miaxOKuC4ieG1zgH01o8s00UFxn9XWmQBcoxlt0kQvo4ZqCB3hR5qO00fMmTOHBQsW9PU2nH6OZnQhIZz/ek30ToIwe0mNwy8jHB2WPapz4xzfBa5LrfEIsEATnamJ/oNQEaEevEi4+7uOcF+3HPgtcFtc53ftjL0dOFETvQZYux6bcVmC4/QRTU1NAEyaNKlP91EPXJbQPboiS9CMtlstIY7bAThOM/rt7u5RE12dUBKozHBgOlAE/h9Ba/egZvR78a7uEsKd3gPA1zSjr9HHuIfnOI7Tj+mKLCGO+xzhKPOcGtdp1x5oRpdoRhtjYMsBwEKCh/Y8sKdm9HOEO7kRwEiCFzqHEOnZL/5LyO/wHMdxepH2isS2QVuyhFbVEjSjN0dZwhvALoS7v1nA5ZroHzSjF7Yzpixl2A+YRri/mw9M1IyuUGWBUE3ht5rRVyva3yd4eq8CzZrRMZro8QSvtM9xD89xHKcXmT/9CRbNfqXjji20WS0helvpagkAd2hGdwe+QfDwdiOkImtvTFnKcDDwRPQkHwe+XLlozHaymWb08or2TwMba0afIASnrKGJPgkcC1zVmRfuKdzgOY7j9DLlIrHlnw5os1pClBFcS9C7lSlLFV4GHtOM/peWCMq2xpSlDNvSUnWgXJHgA2LE5W8IWr10+4aEigdlw7oP8KZmdHtAaW1c+ww/0nQcx+lBKo8w2ysh1AZtyRJOBsYBaxA0d2XakgrQzpiyLKBckeAGQkWCyjydZwK/04x+EF6sia4GXAr8T6q9nOQagre3Xm2v2rO4wXMcx+lBykeY3cjA8ingk8ALUaT9T0KV8mrVElZAEz0q9bWjMVcDl0bpwieBpzTRbwFfJ5wICjBBE/09QXLwN0I2lr2Bz2qiTxDSht0MHBW9yQHUT+bQLdzgOY7j9DDlI0zocgmh8zSjp2qiaxGqkG+lGZ0CTEl30oxOSn1uhGDwYnou2hsTEzcvBQ6N3wdpRpdqokcAR2hGf6OJXksIZHm33Iegl1uLcN+3pWa0FKc+pCsv2pO4wXMcx1lJ0Iwu1kTPAg7URIcQS+XEkjoQki5fQqgNdwvhOHFE9LTywFa0k7gZ+H5qraXx41rA45roNsCahOPVJQRvb2NCKZ/3NdFbCXXs+i1u8BzHcXqZblZUeIlQkaAajcDUmI6rIabt+oZmtDHq7AqExM0DgL8DM2hJ3Nwql6UmuiWh+Ou6hOTTHwE+AXyacA94Sny+KA55E9igqy/VG7jBcxxnlaULmre6U3l/N2zCDt2dchghArMyd2Uz8BdCwujLCIEkf0/16UziZjSjLwBZTfTLhChLAx7QjL6rid5O8AbfAIbEIUNo5y6xP+CyBMdxVlm6oHnrcbaavHMrSUJn0rFpomsCJxByU75J0OgBjIi/l8YSO0fScldXNozlxM17xfu9nTSjzVRJEK2JDorGEIIHt5gQLLOpJjqQkEnlWeBpYMfYNh64r+aX6QPcw3McZ5UmHTDSF9SpGOxETTQLDCQcWT4cjyi30ERvpCWTyUGa6LeBwQQPD+BFTfRKwhFkOXFzM6HAais9XYqhwLRYxeC/wKQYwHIeMJNgJNNtdwH/R6hw0G9xg+c4jtOPefmCD5KsDIy/byADsfLAF6oM+XPF+KeBmWb2FPAUcKOIzAR2lAskAX5JpvUE8ThzXOXEmtErRGSwmV2YaptGSEfWaUTkbjMb05WxXcGPNB3Hcfo/08ysMf682V5HEan13/W9gD0Iyag7w1Edd+nUPnoN9/Acx3F6mG5GZa6AiIwHzohfTzWzW6PXlgBbiMh3gCsJd29LCMeQK2Bm74jI4jjnX4DNCEeYh5jZIhF5BHgE2ImQdDoDjIhrrSBzMLMZIvKBzEFEbiZkd1kbOMfMLqnbH6ELuMFzHKcu1Psf9XrQzQwndaEOUZkAE0VkDPCsmR1JyE+5T3w2g5bIy6vNrCQiPwTON7PLROSmtiYVkU1oOSqdZGbvisjRBPH5eQT5w2cJ6caOMLPvicg3zKwxenBtyhzM7N/x+HOGiKxGMLpu8BzHWbmp0z/qqyRbTd6ZrSbv3H6nhsM7mmaamZ2a+t5sZosARGRZqr2cBHobQhoxaEkGXclthHI+J4vIQOA3IjKCIC+4OvaZZ2bvich8YP2K8SvIHESkAXjVzMoyh1EicjowiJAirU9xg+c4Trep6R/1PqC/eZx1ZICIlPVvA1PtZYnBs4RjyCeAnYFqXt5eZvY+gIiMAtY2s7Ei8i2C1g9W1Pql28oyh33NbJmIDDKzZhFJyxx+CBxNqK33z86+ZL1xg+c4jrPyMYWQoLmBUA29kvOBK0XkG4Q7uY6YC2wnIjMISaHnt9P3RRFpJXMQkbZkDlcDRWA2QbZQyY4iUvYQrzOzs2vYa5dpaG6urB7RdUaPHt384IMP1m0+x1mVaWpqAmDSpEl9uo9VmbKH15c6vFpoaGiY1dzcPLraMxFpJBwbbmFmr4rILoTglK3N7Lme2pOIHFWWH4jI74ATzWxZ6vmbhOCUwcCvzexvPbWXetHvwkYdx3GcFZgN5OLngwnFWetCO/KBD+QHZnZC2thF5phZIzAW+E4N6zTEO74+w480HcdZpemP0aNd4HaCbu48QvDH4wAiMhI4m1DQ9Voz+4WIHEyQArwN/C8hevKPhMTPi4HDCfd73yccif5RRD5PSBc2ADgsfi7LD35OOL4cX77zq2BwnBcR2RJoSu3nTBFRgnxhGHCYiFxBCGJZCHy1iiHtMdzDcxxnlWXYhB36XJZQJ5YA74nIrsCTqfa5QKOZ7QrsLSLlunRfNbM9CcbuAOCF+P33wDFx7OpmdqCZ/R042czGAT8FxMyuJXpwZnZLG3sqG8RHgSti20nA6Wa2O7CniGwR2582s30IgS4HmNnY+B57duuv0kncw3McZ5Wlv0aPrkDHsgSAG4FzgcnAcbFta+AsERlM8OA2JQjST43at58TpANfE5F9Cf/mlwu0puUKPxSRvQieV9qgtsecqMdbDZgRPbdtU/M+HPcHLXKJtYGpIjKMIHLv1chN9/Acx3FWDm4kGI4HUm3HAmdG72we4YjyeTM7mlCM9fsEL/CS6K2NAX4cxy4HEJGNCF7i54CfsKL8oF1Sx5xrAM8QROoQ5BDPpdcC9iV4e+MImWB69U6v33h4s2bNYs6cOX29DcfpNRYsWMDmm7dVx9NxWmNmbwPfBBCRcvMNwO9F5AnCsSeAxqPPdYATgTuAc0Tk9vj8d7QUbYUgF3g7Pn801Z6IyDXAWW1sqXykOQi42czeEJEzgYtFZHWCzGB+aq8A9wOniMhoQnmjXvXw+o0soampyf8BcD5UlP/37rIEpz1ZQhkRmUfIm3lF/D6TcKyYj9+vB14zs0kisjHhvm5zgmPz83hXR2psW0EoNVGegxAEM8fMZrU/ou/pNx4e4P/ndz5UlHV4jtMRIrIToebcgbQEiABsGUP91wHWIwSFQMhx+Qczuyt6W6PoIcysqafmrjf9yuA5juOsyjx551TmPTC9K0O/RJAW/FhE1jCzcvaUhFDBYGvCHd8nYl7MoWZ2F4CZLaElUKUVUY7QqpqBiNwB7GFmy0Xkr7RURTiTcHx5vpldlJpDgbsJeTm/R4gN2ZCQcuztrrxsT+FBK47jOL3EvAem8/qLs7sy9DNm9gChGsH4VPvVBCH6foT7PIBNCBq3WrgzBpDsSoj+BLgX2D1Gfq5tZgsIqcwOAsYQtHSrtzWhmR1IML571biHXsM9PMdxnF5ko4+O5MATZ7Zu/EHbwYoisi0h5+QMQiTk07QYt6cJQvR3aAlEWUgwerVQrZrB34BvECQO5Xu/nYBr4+eN25n/sfi7WnWFPscNnuM4Tjt04xhyBV5/cTYbfXRkZ4d9GTjazG4DEJFr47FlmStJeXSxcsHLIvK5eIc3CBhlZvdVmXuFagZmNktEfkswav8T+z1MKAr7TqyKsLQi+rJMteoK/QY/0nQcx2mHbhxD1ov9CceMZZ4gHC0CIWjEzG6oGJMHjo+RlP+gure1nJZqBufTuprB/cBHzKxcNeF04FoR+Qetg2ZWKtzDcxzH6YCqx5Bd4LqzGrsy7HTgqShLGAiYmd0BtJosVk6YFD+/JiLnEgTlWmXOQWa2HLgw/rTCzH4oIl8XkTuJYnbgC4SSRIfGPuX10/PPjL8nAePLAS1mdiv9APfwHMdx+j/TzGwvgtE5TEQ+09WJosD8yg76fAqYQNDqfQ44h9aFZvsN7VR7WAH38BzHcXqR11+c3VVPDzNbLCJnEfR4D4nIOYTKBouAw8zsTRG5ENiS4JW9CCAiZxDK+DxCSCT9WxE5gHCHtxowxcxmpJY6BDg7ShowsyTOA/AzERkPnGtmF4jIycDngTWBY8zs4cp9R61gtYoNrWQMwFLgr8DqwBvADDNrEpHTCImml9NStugi4HVCROgKXmo13MNzHMfpJbbbZUJXglYqeQnYPBaCXTtWHrgCOEZEMsAyMxsP/AtARIYSZA1jCXq5slf0A4IRaaQlOKXMUODlNtb/C+EO8Yj4/ewobTgszlmNtio2VMoYvgjca2afJ94pisgIYFg8Qj2eoBuEEEV6aLlIbS24h+c4jtNLbD92MtuPnbzig3ZkCVUYRjBG6coEDwLjCF5d2cOaBWQJovGyXGA24Vh0Y0IVhfLd2qYi0mBm5SjLl4EtiHX3KngsRmmWE0JPFJHDCN5XW7kq26rYUCljGEpLPs/ZqbGNMQCnvDeARzpbS889PMdxnJUEEVkTOAG4jtaVCUYTPLpnCUeFEKoVQDCCO8TPn46/XwPmAHtFz2mnlLGDoMX7TpQ0ICKjY609WNGoHUfwEr9F21KEtio2VMoYngVGVOx1LiE5dWPc6zdi+3I6iRs8x3GcfszgHQaPHLD2gFPkWLkTmLH6sNWTod8c+tDQbw59FVgsIncRAkzONbP7gTVE5Dbg4wBm9jIwO/YbDyyNEZq/BW47Jn/MA4O3H7xEE10NQBOdO/SbQ/8wJDtk24bVGkoictfAdQb+cvNJm/9jtY1W22mTr24yDGDgOgM/qomW1hy+5mYD1x34HHDkoI0GjSzPU8G1wHARuT0GzXyhjde9hpDl5SZC4uulZvYIsEBEZkZZxJFd/Vv6kabjOE4/Zr3serPXy643C5imGT1PE/0F4QgTMzu+sr+ZTSp/1kTLTo2a2fsiciiwTex3I3CjJnoBrZ2fhZrRRjJEkQNoov8A9t7ki5vsAPxQEz1500M3fbHcTxPdQDP6f5robnHuxvK6qXnzVV5vZuzfVG4QkS/Fvf6J4MViZj8nFLNNU1PV3DRu8BzHWaWoZ2YU6HJ2lHpzOyGo4zxCCrDHATTRtQgRipsRsq0cTgge+QKhgsIpmmh28CcHn3r8j49fu2G1hqea328+sDypJvopQiTntqm1NtRE7yRUPv8uwRgu1oy+Bdyvif4KWAZsronupBl9RDOaFq13lxtEZB1gnplVTXrdVfxI03GcVYp+kBmlZp68c2qtEoUlwHua6K4EQ1TmaOBazeieBG/pkNj+hmZ0f0JE51fW2329Lf/wiz+sv/kRm+9mZunE0t8jRE2mGaMZHUu4+5sMbEDrgrEDNaPvEIzhbzTRpzXRL9byErVgZvua2e5mdkTHvTuHe3iO46xy1CszCnQ5O0pNzHtgOi8/fUet3W8EziUYoeNi2/bAKE1UCDq4ywmVxMvFWLcGHtKMLgPQjH4Q6KHJKd75AAAgAElEQVSJfgx4UzP6mib6wSKa0f/Ej1cTDOL5wJDUPpbHfjcBN2miGxEysFxT64v0Fe7hOY7j9CFDPz6u1q43EgzZA6m2ucCvNaONmtFdCeJuaIlgfAbYuXyXl7rTgxANuYsmOoMQEXmuJrq6JrpGfL478C/N6LvAWproOppoBnhCE11LEx0W+y0iCMb7Pe7hOY7jrARoRt8GvgmQ8simAudposcRwvpPrhizUBO9ErhXE11MEHzPjc+uAq6K882MzzYC/q6Jvk0QfpcDQ34O3AK8RxCcrwFcEo3jAOB3qWVv0kSbgRc0o0fRj3CD5ziO00d04q7xR5roOZrRVzXRXQhGRzWj5TRdae5Pf9GM/pEWz28FNNHPEETraEZf0UTXJnht6wEfJVRnSGvelmtG39BE/04oXbQM+GTq+WoEfZ3Xw3Mcx3E6zWwgR4jSPJgoS+gITXRA+t6uDY6nJWMLlGUJrfkJsA9BwH6yJnoycIBmNBvX2SDVdy/N6Pu17K+3cYPnOI7ThyxZ/GYt3bolSyB4hIuBYzSjc8uT9lNZQo/hQSuO4zh9xFrrbsbqa61XS9duyRKA3TWjexCrmqfoCVnCbZroTE20zWPUvsI9PMdxnA7oTkmf9lj81itR1F6TNGFlkSX02yNN9/Acx3HaoU4lfeqByxK6iXt4juM47dBmSZ860BmvcSWSJdwWZQnLNKN71fyCvYAbPMfpQxYsWEBTU1Nfb2OV4vV3R/LxwStHarFOsDLJElodaWqiXweOJRjk54GjNKNLan/1+uEGz3H6iBEjRnTcyXECK5MsIb3+pwili8ZrRpfEI9GBtey9J3CD5zh9xKhRoxg1alTHHZ1O0ZO5L3uCGnNprqyyhEOAs8senWY0qeVlewoPWnEcx+kjtttlQq25NFcmWUKaocDLtbxgb+AGz3Ecp4/YfuzkzlR1KMsSrkpPAZwQg06OADaN7Z2SJaQXqZAl7EgIXqkqS9CM7gNkCUee1XgZ2KLWF+xp3OA5juOsHKyMsoS/Ad/RRAfF9UfHY9g+we/wHMdxVgJWIllCq2oJmujlBKlCOUrzyHr8PbqCGzzHcZz+zRTgoPIXTfRs4ELN6HOx6fDYPpPgAW4PPPxB/45lCcOBKVFK8ArwmRX6ZPRW4NaK5hU0dlWiO9GMTgemt7V+b+IGz3Ecp39zPXAAcGn8vhvw/bY6a0abOjn/cGBPQiToKo0bPMdxnDry5J1TmfdAXR2aq4BfApdGkfgjwA810c8T8mceoxlt8egSVeBugmD8MmAQ8Khm9DhNtJEQmTkA2BDYlxCJubsmmu1vmVHqjQetOI7j1JF5D0zvTGHXDtGMzgOGaaJrEkTnVxO0beMImrsftDH0NWBvzegYYEiMyizPeSAhCGYvwj3gtFXd2IF7eI7jOHVno4+O7IzcAH7Q0FGPW4Dx8ecMYJImehghGrO5rW0Af9JE1yccW5blAY/F3/MJVclrKsi3KuAGz3GcVY6eKudT69o9UF3hKkIk5Aua0f/GqMydCRlSzmtjzATgGs1okyZ6GSGKE1obyAaCpKDP0n31Jn6k6TjOKkU/KudTNzSjjxASOV8dmxLgTtoP8b8dOFETvQZYu51+jxHu8P5cj732Zxqam9vyhjvP6NGjmx98sKacpitQzhg/adKkuu3HcRyntyl7lp050mxoaJjV3Nw8utozEWkExpvZqfF7E3CGmc3r3k5brXGUmV3YxrNzgA3N7PCK9rmE1GXLCdq+k8zsrYo+nwcGmtkN9dprd3APz3EcZxVERDrz7/tRbcyxGeH+rxoLzWwPM9uLUJLoZ5Xrm9mM/mLswO/wHMdx6k5v3CGKyHoE2cEQYLaZfUdEJpGqlCAiFxNkDDsBR5jZbBE5mpAtBUIC6NHACBGZCeTNbE5qme8BhVT/qpjZxSJyZNzXTMKR6xYicivBzmwGPGRmfxeRg4BPEJJWt6r0YGY9WjndPTzHcZw60kN3iBNFZGY0Jp+PbZOBP5vZWGCwiHw2tr9hZvub2Wxg89jvOOAIEdmYkLVlLKG+3mlmNhWYY2aNaWMnIhsCm7BihYW2SN+PXV1xBPpXQrFYgC8RcmweDVxrZpWVHnoM9/Acx3HqyPZjJ7P92MmdG9SxLGFaxR0ehAjNG+PnB4Ht4udZqXHzzOw9ESlLELYheHv/qGFX32XF0kHtkX6J9B4ws6dFZFsRWQsYZmbPisj2wCgREYKA/vJOrNUl3MNzHMdZOXkGKFcQHg38K35OVzivlCA8CzwQvblGYO8q/cpsTcjwcjGwp4h8ta2NiMhEWldNr1ZlfSYhL2g5hdlc4NdxL+lKDz2Ge3iO4zj9m5HAj0XkHDN7lSAo/yfBU/uViHwLeNTM7hORT7Y3kZktFJEbROTO2DQsen/biEgROImQbmwCwWh9n1DT7jzgeyJyLDDRzP4NbC4irwCrE6ooHN/Be/wVeJSQ3BpipQcRSVd6uL/Gv0mXcIPnOI7Tv5lN8J5yBMMzh3A3t8jM9kt3NLOmirFjY/tzwKT4+SLgIhFZE9jAzF6ORnNNM3tKRC4neI5Dgd+b2cEishqwD7ADwTAdT6jL90czu0tEVo9jiJ7jCvsxsydI2RwzW0xL+aFewQ2e4zhOH/H81KnMn15TounbCXkvzwM+BTwOEO/EWkU6EvJrpiM1s4Qoy8XAMWY2F8DM3iN4bwDvA8vi53mEenfrA6+LyGBgcdTY3S8ivxKRgcBQM7srzrUEKHX179Bb+B2e4zhOHzF/+nT+c8cdtXRdArwnIrsCT6ba24p0fMPM9icIw78C7G5me1Al4lJE1iFEcpYt723AU8DNwDnABoSq5mUGEqI3F9ay8f6EGzzHcZw+ZMNx42rteiNwLrFKeWR74IQoVzgC2DS2l6Mktybo35YBmFmrYBIRaSB4iKeY2RsiMoQgQv8Y8FngV4TK50NSw5YTjN0mtW68v+AGz3EcZ+XgRoIheyDV1lakY9mwPQPsXM66UiX7yhTgHjO7PTXu3XhE+Sawtpm9C6wlIuuISAZ4IhrQl0Xkc3HeQdH77Nf4HZ7jOE4P0t493aLZsxkysjaRupm9DXwTIEjXgOqRjukxC0XkSuBeEVkMHEMwkojIFoSozHtF5GCCiP1PInKziJQIR5dT4lQ/J5Qoeo+WrCt54Pci8jOCLTmjphfpQ9zgOY7j9CDzp0/vlGFrgx+VZQkisgvB6GgbkY6tQvvN7I9U17i9BdxFqIi+CLg0tr9DOP1bBrwe29JHocvjvK8BX+vyG/UBfqTpOI7TwwwZOZLdZs5c4acTRnA2QZYAoep5TWVpOkggvZSQv3IsUCTKFuLvLCEA5oex7ScEWcKPqPAiVybcw3Mcx+lDaozS7FeyhO68b1/iHp7jOE4fMWzChFqjNPubLGGlxA2e4zhOH7HV5MnsNnNmrd37kyxhpcQNnuM4zspBv5El1PvFegu/w3Mcx6lCJ9J+tUsdIjSBfilLWOloaG6uVhWia4wePbr5wQdrCh5agaamJgAmTZpUt/04juN0lXsbG+tirMpztHd02dDQMKu5uXl0tWci0gjcCmyRkiUkwNYxKXTNxLkazUw76KeEaNA3gH+a2dHxuHMGMM7MlorIzcA3zezFOOZaQtWGU1PzHEVISv1HETkUOM7MxonIGsBMM8t2Zv/dxT08x3GcNujIUNXCvY2N9dhKWZZwHp2QJXSTE83sVhE5X0R2NLPHRGQacJyIvESoq1c2djsRirhWkgAnxs+jgXfjsepIwjv1Km7wHMdx+og6VEsYCZxNkBFca2a/EJHTgD2BwcBbZraXiFwIbAk8D5SN1F8Icob/AoeY2SKqs17q81RCtfRBBF1eme8Q7g8rvdQnaKl/twUhknR7YBcgEZFBBK9xEEFW8VUzWyYiFwEfBV4AXujII60VD1pxHMfpI+pQLWEu4YhyV2BvEVnLzKbEmnRPAVNioMkyMxtPS1V0gElmNg74C3BolTXPEpHngP+a2WMAMdrzCeDpqMsjFp19lXD82YoYFfquiKxH0PnNIhi78rHs+8ABUfz+JKGy+mfjmuPj+9UNN3iO4zh9SDerJWwN3CgidxA8p00BROT7wMNmdgewDfBw7D8rPh8I/CZWPv82wfuq5ERgBLBpLBaLiGxL8Lw2FpFtYr/vE7zMtphFqKA+N34eBXyCYODWBi6I+z8k7mNrQmV0qPOxpxs8x3GcHmbR7Nnc29i4ws+i2Z3697yaLOFY4Mzoqc0DGkRkHDDSzP5f7PMssFP8vHP8PZIgORgL/IEQ4bkC0Yu7kpa0Y78EfgycSkuy6K2AJuDXwNfj+mmSuM8HzOz/gOHAO9H725fgLY6L6zTE/Y6IYz/d7l+kk/gdnuM4Tg8ybMKEuszThizhBkLFgicIx54ApwHrRjH6bDM7QUSOFZHbCHd4LxC8re1EZAbhTm9+O0tPB24SkceAt83skbiHpSKSMbN94/dGYHz0KtMkBANWDrRZTMux7P2E9GejCbq/f5rZ/SJyTNzvS4Sj2brgBs9xnFWS7uro6qWf22ryZLaaPLnqs05EcLZVLWEGIegjzV6Vg81sErSSJbwNjOlgzbNEpCxL2C3KEj4pIoPMbCkwlJZcnBCONh+tnMTMniflQZrZV1Of/w18psra3zKz90XkJIKBrgt+pOk4zipJuSzPKkKXqiV0kxPjUSNRlrAIKMsSvkJtsoSuckG8X/wccHW9JnUPz3GcVZbu6OjqpJ/rkG5WS+jvsoQuYWY9ks3FPTzHcZw+og7VEvq1LKG/4QbPcRynj6hDtYSVQZbQb3CD5ziOs3KwssoS+g1+h+c4jtO/GUnwwspRlenadPWSJWwtIsPMLC1PuEhE5hGM4SdE5F/A28CRBO+vVllCv8ENnuM4Tv9mNvD7dBUCWjyu56iQJYjI3ulCryIyoCxLqGBM6nmroq5mpiIyPlZJR0SOAPY3s6NS3Y6oGDOTkCuz3+IGz3EcZyUj5ps8kxAteb6ZXRQ9ugTYQkRuBb4ArEMQdv+YiohMEXkEmAM8FgNPzjCzedXWM7OLReTIuPZMYDzhWPMjhMwpz8USQlsSjjfLUaNn9sT7dxU3eI7jOG1QTgnWD5goImOAZ83sSEJh1oOAt4BbROSy2O9qMyuJyCTgDTM7FEBEJpnZuyJyNCEi8zyCsdrNzN4RkaYa9lCteOrj0dDdLCLrEwrKnm5md4nITSIyzcxe6sZ71xU3eI7jOFWoV0qwOjGt4khzJ+Da+HljYJP4eVaqT2VE5gjC/V9ZyD3XzN7pxB6qBbY8Fn+/RNDrbQs8FNseJkSRusFzHMfpz7SXEqzuNFQNkmyPhwlHk++UU33F/Jrpu7jy5w8iMkXkW8CwiucdIiITaTFkadJeXwPwDKEawp2EiNBCrWv0Bm7wHMdxVj5OB66N1cP/A3y5nb6dSRSdZhMR+QfBMM4lHFd2xJnAxSKyOnBdRdRnn9PQ3FztWLZrjB49uvnBB7uW4q2pqQmASZMm1W0/juN8eCnfvXU1tVhv0tDQMKu5ublqWq5svtgIXEzQ070JHFoq5N7r7prZfFGBu0uF3K2dGPMj4ADgFeAbpULunWy++EfgK8DJpULu/FTfLQge346lQm5eqn1d4BpCwM0i4OulQu6t7r5PLbjw3HEcp/8zrVTINQL3Egqltkk2X2zI5oudPiPtiGy+OBT4XKmQG0MoGXR0fPQz4H+qDDkBuK9K+1Lg8FIhNxYo0iKx6HH8SNNxHKeX6UbpotnAztl8sVX4f6mQOzN6bFsR7uhOyeaLZxNkCLeUCrlfZPPFYwnaucXAMXG+r0Wv7blSIXd0Nl/cBLgAWBd4slTIHZdae0tCHs3yPr4CnF0q5F7O5outNhnnWZegE2xF9E7LZYXeB5Z15Q/RFdzDcxzH6WW6UbpoLC33aaeXCrndgT3j8SHA06VCbh9CFOfUUiG3B/DLbL64KcFA7R7b/hn7P14q5MYDW2bzxfWBHwG/jH3eyuaL2dTazwCZbL64GqEawwbt7PME4PftvUg2X1wHmEzwFnsFN3iO4zh9QLl0UY13jBOz+eI/gPUJcoRq4f/QIkv4C/DpbL54GfD5+PyhUiG3DKBUyJUjNCtlBdsDv8rmizMJ5Yg+SCpdKuQWApcCtwIfI9zjrUA0nB8tFXKPp9pGZPPFmdl88Yr4vQG4EDilVMj1WpUFP9J0HMfp/0wrFXIf6PCy+WJb4f9lQ7a0VMh9P5svrg7cA+xHOAodUCrklmfzxbKzUykrmAtcWirkZsV1WtmIUiF3HnBeNl+cRGvNX5pPAB/L5oszCNUWPhK9yMZUnynAPaVC7vZa/wD1wA2e4zhOL1G+u1s0ezZDRo7szlRnAhdHg3ZdqZCbX3GPdlA2X/w2oQjspaVCbmE2X7wSuDebL6bv8Cr5BTA1my+uRzCe3yJEhwKQzRf/CmwIPEpIIE02XzwFmAA0ZPPFLUqF3BQgG5810VJVoTzHFoQj2Xuz+eLBwJ9Lhdyfuv6nqB2XJTiOs0rSH2UJ9zY2fnB3l67G3pYsIRqesiXbmXB8+WypkDuyK+tn88WjSoXchTX2HUVLvs53geNKhdyz7Y/q37iH5ziO04t0xrMrFXJvEo8Cs/ni3VGa0B2OItydtUs2X1wTOAf4UqmQeyV6Zet0MKYh7rl+XlSdcYPnOI7TB3Q1MXU2XxwOXESQJFxVKuT+NwaZ7Bnv564maORGAz+Nw04G3gNGxL5TCcedhxMM2UmlQu621DK7E+QMrwCUCrmX2ln7DGAoQbbw1fh9BEEkfxihCvu58ftw4EDgdUJB20HAAuBrqUCaHsOjNB3HcXqZYRMmdOcO72RC1fHdgX2z+eJmhDp0Y7P54gZAQ6mQe52Qfmw8IUrzZ6VCrgTMKRVyjaVCbjowPXqM41lROD6UFq1cR2sDPFUq5PYGPgmsFkXlVxLuACFEgB5C8BoPJojP94/9ngF6pUq6GzzHcZwe5vmpU1vd3201efIHkoQu3DFuS5AYNAOPELymy4CvAV8iGBqA90uF3Nsx7L/aMeN+2XzxDsId4Ucqnr1MSpLQwdrQErGZlks8CGwXPz8Rx8wnSCvWBi6K6x/cxlp1x480HcfpU7qRdaRd6hAJWTe6ITSvxjPAqGy+WCJUQvjfUiG3IGZf2ZJQ7w5gUBR3r0ZLaZ+l2XxxYNTjnQR8jnC0eUfFGvcAU7L54h9Khdyr2Xxxc0LmlBXWjv3Lx5HP0JIqbDTwr/i5Uv6wH0H0/vVsvngm1UsP1R338BzH6VPqbAz6LUNGjqyXAf5l/LkHuLlUyC2I7TcB76QSMU8BbovtGttuAK7L5otfBP5O0PFNIdyvfUBM//Ud4PLohTURjiHbWrs87l5geTZfvJOQ2eW8Nt7hPuDL2XzxOoKR7hVcluA4Tp/SU/KB/iRLqAxOqdxTe9USNNFGQrWEecBAwDSjl1f2y+aL31lz7SWvj/vS44s1o1fVY9+a6CRaPLadgD2AV4HrgR2AdTSj78e+/4/g1T2kGf1uPdavN+7hOY7j9H+maUb3Ar4AHKaJfib9MJsv5oH9P7vv0/cR7vHqgma0STPaSAhseZ5wb/cfQtqxDyohxP2srRn9HLC6JrpLvfZQT/wOz3EcpxfpqhwBQDO6WBM9CzhQE50DzAAG7TuRhYR7sZ8Be2uiMwl3eX8m3J/N0Yx+RxO9WzM6RhMdDqhmdJImWiIEnYwBfqQZnVFl6bHAnZrRZoK84T1NNP08S8ixSfy9K/BAl16yB3EPz3Ecp86UozLLP+U7ym7KEcq8BGxOKK1zgGZ0LPAkoYLBVOCW6JWNAGZqRvcA2jti3Ihwj7c/IG30+RJwdTtzrE8o5grhPrC9Sgp9hnt4juM4daatfJlbTZ7MVpMnrzigoVNBisMIsoG1gama6DBgM0LJn3+m+t0BjNVEpxMCVKalV0x9XqgZfRVAE12/cjFNtIHg/bVnNN8AhsTPQ+L3fod7eI7jOD1AuvxPveQRmuiahFpz1wH7Ak9rRscRtHcNhEjKgbH7QM3oaZrRCcREz8Ca8feI1LSVkoFKdiEEorRXqLVEuNeDcN9XrdJ5n+MGz3Ecp/8zURO9jXBnd4Vm9GHgfuAgTfR6WgTgC4ANNdG/ARlN9G5N9H5a7tdu0ETvpnOZTQ4GPoj61EQHaaK3EqI2b9JEP6sZfYhwr3cXsFwzmnT9VXsOP9J0HMfp30wBdtKMvgGgiZ6tif5bM3on0CpaMwarjC9LBQhHkS3PM3o6IeVYum2MJroFUWqgia6WGg+wkFAJ/XpN9LPA/wOWAU2a0e9posM10VcI94jLCKWD+iVu8BzHcfo31wMHEKqNA+wGfL/Oa5SlBq0CUzTRNQieXJnngT01o+9popdpoiOAtwiBMofXeU91xw2e4zhOHUinSKsWsNINOcJVhOwml0a92yOa0WWa6HhaiqueqhktH1uiid4B7KEZXa6J/hXIAzu22T+j1aQGEKouXEzwMtGMpjOrvE/w6FYa/A7PcRynDrSXIq07cgTN6DxgWAxYOZgWL0yBfeLPlIph9wK7a6KDCYLwBR30X3HdRAcB4zSjt1d59mlgY83oE7Fpb010Zvw5qJOv2Gu4h+c4jlMnypGZlZ5cm3KEMh3LEm4hRD+mvbpmzegiAE1WiKD8G/ANQi26v9fQvxoTgRWyemuiGwK/B76a3p8faTqO4zj14Crgd8ALmtH/xrYBmmhZ+zYw3VkzOksT/S2wCS217trs3wafAEZqoscAn9JE88CfCHeJ/1NxvLlS4AbPcRynHyMijcCtmx+5+YsNAxpMRHYBkg332/CINYaucTNBO3dalaH3A7tqRufH71OAD/qLyLrANcAgBvDW5kdsPrhhQMNOS19fOj//0/z8JS8teRf4ppnNPe3O0+a8ctkrEwZvP/iYIdkhmzc0NJwZ7/tOJojgy+nMAG7QjP6mR/4Y3cQNnuM4Tv9n9oKLFpiZXSEXyC+AB/9z43/uNLNL0p1iSrHy5x+KyAAyH3y/iVAqCAC5QNYEDjezl0XkWwsuWrCmme0hIoPMbKmIjCOUCDr+lcteeQ046N0n393h3Sff/YaZHV+xv81YCXCD5ziO0/+5nSAbOA/4FPA4gIisBVxIMDgLgcOBwwhVFdYBThGRLHAEsBg4xszmApjZewTvDFIRl2a2NLatAzwqIoOBxWb2FnC/iPyqZ1+153CD5ziOUyPtVWevlCJ0pypCFZYA74nIrgSB9+ax/WjgWjO7XESOBQ6J7W+Y2aEisimhEOvuZrZMRFaIzBeRdYDJBCOJiKxOMLBbEKJCN6AlMTTUdv/XL3FZguM4To3UWp29TlURKrkROJdUmi9ge+AEEZlJ8OI2je2z4u+tgYfMrOy9LU9PKCINBA/xFDN7I/ZZYmZjCIZyCvB/tCSGBmg1x8qEe3iO4zidoCw9qCTtzXUoQ6iktmoJNxISRqfrzM0FbjOzKwFEZBDhSLNslJ4BdhaRAWa2vPw7NX4KcI+Z3R7HNwCrxWPNRYSjzHdFZK3oCe4APMFKihs8x3GclQAzexv4JoDIB2XrpgLnichxhOjLkyvGLBSRK4F7RWQxcAzBSCIiWwAnxWcHE4rFXgTMEJFmQhWFcnDKzwlawPcInuRKiRs8x3Gcfsyjq++3QpuZTUp9PRwgmy8eVSrk7ifIEdJ9/wj8scocLwGrZ/PF4XHMofFneqmQm1rR91ZaKi6stLjBcxzHWTU4inAf1xVuKRVyNWdKyeaLA0qF3Ep3l+cGz3Ecp07UOTKzTbL54uHAtwlSguOArYAR2XxxJuH48fRSITcm9p1ZKuQas/nixYS6ecuBvdozWNl8sREYXyrkTs3mi5Ni80zCkefrwI3ZfPEFUsmoS4XcrXH9BwlliS4sFXJTs/nikYRj0HWAH5cKuZvr8kfoAm7wHMdZZam3AapWBaHMsAkT6rZOe2TzxYEEQfjuwDDg96VC7oBsvjinVMg1xj6nV4wZBHykVMiNy+aLDaVCrrli2r2jsQL4La1lCGk2JRjCZdl88W5CImoIhWnLR55XE+4G78rmi03An0uF3EXZfHE94K+EbC99Qr8yeAsWLKCpqamvt+E4Ti+yaORIRtcQ6t9ZessAlel0ZGaa2qI0y2wCPF8q5JYCz0VDUpVsvtgAUCrklmbzxYuz+eKlwPPZfPEnFR5eqyPNbL6YrojeQAhgAXikVMiVE083lwq5RbF/Ohn1w9EgPk8wkLtk88Xvxnk2pQ/pNwZvxIgRfb0Fx3FWIbplgNqgN44ra2AhMDx6bcOAN2N72mtryOaLaxASQJe9wstLhdwl2XxxKrALFcEtFbwJDI2fR9BSxTxtJAdk88Vqyah3yuaLCeGY9VVC5Og4YA3gnprfsgfoNwZv1KhRjBo1qq+34ThOL9NPjEh/57Bsvrhr/HwGoTzPXQQDVJYOJNl88RrgLKAJuJtw1AiwLnBtNHyLgDkV86ePNG+Ic2yRzRdvJNzZVaNVMupU+1cIlR0uKhVyS7L54vXAnUACvNGJd647Dc3NlUe5XWf06NHNDz74YN3mcxxn1ads8KqJufsbPbXXhoaGWc3NzaOrPStXSwC2MLNXy9USgK3N7LmurtmqWkIwgl+P+TLLGr1ngB3NbJ6I7EkIhnkPmGhm/xaRucBLBKM7Fzjp0dX3u45wx/d+V/fVk3hqMcdxnP7PbCAXPx9MiITskGq5M1MsJVRLGAsUgUmpZycA96W+/4QQoPIjWsTtC81sDzPbi3A8+rNa9tSX9JsjTcdxnJWB3pIeVNBr1RJEZBPCEehz8XuH1RLM7GIRObIcJdpfcQ/PcRynRnooKXQtVFZLKFOulrAnQSeXrpawP+HIsVwtYQ/gn5UTp6ollMtAnEC4IyxTa7WE+t2P9RDu4TmO49RIT0R+Ap1JHn0uwTgdF9u2B0ZJSK65JnA5IcKyS3hGbXoAAA2BSURBVNUSRGR94KNm9ngqX2et1RI6pa3oC9zDcxzHWTm4kWDIKqsl/NrMGs1sV1pyZq5QLQGq3um1qpZAkDF8TERmAHsD55rZu8BaIrKOiGSoUi1BRCYCD3X7DXsY9/Acx3FWAnqjWoKZ/QnIxudNtKQOq1YtYRMR+QepKM06v3LdcVmC4zh9ysokS+gp2pMlxLyWFwPPxqYc8FPgxFTWk8r+L5QKuWdSbQOBO4CDSoXcf7L54jTgHEKwyiXAuqVCbniVubYkaPpWI6Qw+0sXX7Ff4B6e4zhO/2daqZA7NfX9hHb6NhJE5x8YvJjq6+fAT7L54nSgoVTIPZDNF9cFdgVuamOuk4BTCLq/v2fzxav6q8auFtzgOY7j9AHPT53K/OnTO+5YhZgVZXz8ORlYm+CxXUHQ0x2czRdvLRVyJ5bHlAq5v2fzxeMJEZhfjW1vxfnaWmob4NFoMF8BtgOe6tKm+wEetOI4jtMHzJ8+nUW1J82emM0XZ2bzxYsq2u8sFXLjCF7a5FIht4RwBHli2tiluBt4r1TIPV/junOBcdl8cXBcY4NaN9wfcQ/PcRynjxgycmS4u+xYllB5pFlmVCwFNIggSG+TbL64PrA/MC+bL44pFXJ3t9HvLGAU8Cvgl4AR8nU+BbzS0Ub7M27wHMdxepHyUWZ7tfU6wQ8J4vP5tIjKl1JdHP4T4NcEacMlhOPQFajiGX4xmy+uBUyjJXBmpcQNnuM4Ti/SyaPMjriakAdzNkEgDiHjyi+y+eJnS4XcFIBsvrgN8KmyMcvmi/dm88WvEPJlXgTsmM0XbwWOLhVyz5Unz+aL+wM/IKQdO6lK4diVCjd4juM4vUxnPLt9Jz4MMFGTh8fEpty+E5kNNGtGLyRkSkn3HwQcqRlNR2k+o/+/vbsPumO6Azj+/XlCNCKRoBXCJCrVmmoTnnlYglCE6NiOoaWkolGdaWe91LQRZup4q+mMVtodNdK0zTCKqYYlRWjiCY2t24SIKCFoCSFpkU7VSzI5/eOcfZ7NzX3u8+I+z33u3d9n5s7de/bcu3uOk+fY3fM7p2ReMaWnNwKz09j8GMCUzP24depWADNMm1lnSuYM4IeAnTqdn5g2c2yfCzrIaIenlFKD322mzfQ5LMG7BhdekP+7f6FpM6+akjkBuAS41L9Pwc2N+RDuCrIpaIenlFJ10teVF0zJtNNNWIIpmT+bNtPxPM60mfWmZLb9nTaTPZPrWC0BNzJzl+wUe31yg5iGJSilVB30cuWF6aZk2k3JbBeWYNpMR1iCaTMdYQn5zq4aUzItuODyW3zSAty8mCuBuKcn2Aj0Ck8ppQZA+ejMbVZe6EFYQtktzcyhpmR6FJZQxc+AW02bedl/vib3Ww8AD/fxdwcd7fCUUmoA1Hh0ZqY3YQnbMSUzEzf45dZc8kfA/3DP8Haq3anWn97SVEqpATJi4sRejdAMomTkU4+On/Pamj2mB1GyqcJsK1lYwjy2DUu43JTcSMyMKZkrPv6o5TrgB7l9vwJa/e3Sq3zazcCyLZt3WPniU3sPD6JkaRAlDwZRMr7XBXZlOCCIkvl+u2Kw+0DRKzyllBqk0jjcBEwECErJX9I4nOL2hFmW7cISTJtZBhxT/lumzVwXRMnJaRxOzqUNrZBvfhAldwKLgdPSOHw7iJK9geHVzjWIEvHnPGhj9bTDU0qpBhJEyThcsPhQYEEahzf4yaSPS+NwaxAl9+Buc7bilhECN5LzQ+Bgn3cuMAw4B9eRzUrjcHHuMEcCj6Rx+DZAGodvVjn2tcAYYD/g6/7zwbiV18/uogznVzl2v9EOTylVd30dnt9I8lOJfcLyzgYux82S8rBf264dODqIkmdwS//828+xeTzu7/zCNA4nB1HybHaVGETJsDQO5/k5NrMruswYYH0Pjw3wQhqHM4MoCYAhaRweHUTJDOA7VI7j+32VY/cbfYanlKqrXg7Pb3g1KO9ngaf8rcNngHHA7cCZwGnAH32+LWkc/jeNw/dwA1DKTQuiZCmuQxpbtm89sHcPjw1uppaO/X57OW45oUqqHbvf6BWeUqquthme38SyK7qK5e0+LCHvFdwqCSnu+d4NaRy+5Vcn3w/4hs+3YxAlw3F/57MDbA6ipMWvlD4LOAp3a3Np2TGWAVcHUXJTGocbgijZC9i10rF9/q25c5vht1uBl6ms2rH7jV7hKaVUY7nev5YBD6dx+JZPXwS8ny3qClyNu1W4CDA+7U/A/UGUfA14EHjM59uUP0Aahx8CFwJ3+Cux+bhwh66OnX3vCWBrECWPAWcAv+6iDF0euz+JtbUbUNPa2mqXL19es99TSqlmkV3hHdHevt0+EVlhrW2t9L0gSqYAx2fr4fkh/temcbi2LN+FwOtpHN7T1TkEUWKA9jQOtz+JbfMNA+YAn8MFtc/FdZwz0zi8rkL+vbraN5joLU2llGpwQZREuMVdT6nRT14JLE3j8AIfbnCUv5qr2KFV2zeYaIenlFIDpJajUYMoGYkbrDICWJnG4dQgSmYEUTIVGOmznQKMwg1k+QD4GGj3cXW3467eVqVx+L2ynz8ijcNZ0BFX95gPSbgWF5h+ahqHs4IoGY2LA7wYd9V5jr9depk/nknjcMCe0XVHn+EppdQA+ISjM6f7WVbagZN82gXAXWkcHg0MC6LkMJ++IY3Dabjpxr6Ei8mb59M+5fP8CzjBB6GPCKJkQi/O5QncZNUAp5ILOwiiZAfcRNTHpnF4LPB4L8vZr/QKTymlBkDV0ag9mDy67BkeuBCAB/x2PgRgtX9/A9gN2B9Y6NOykIHdgZt9HNw4XAhCNhdnVWkc2iBKVgVRMgnX4Z2Pu8oE2BP4ZxqHH/i8W7v4mbrQKzyllGpMrwCH+u18CEB+JKIArwJf9p8n+fdvAvf6IPRldIYtZJ4IouRscFOGBVEyuWz/3cB5QEsah+/k0jcC+wVRsrP/7qDqYwbVySillOqxucCZQZQ8DnyUxuFfu8g3D/huECUP4lZCAFgCXBpEyb10LvaadxVwjL+Fugx3NZn3OC7IfWE+0V/RXQ8sDaJkCS7WbtCoaViCiGwE3sfdH1awB1oXoPWQp3XRSeui04HW2l3rfRLNrqbP8Ky1e4rI8q7iSYpG68LReuikddFJ66KTiGgA8wDQW5pKKaUKQTs8pZRShdAfHd7cfvjNRqV14Wg9dNK66KR10UnrYgDUdNCKUkopNVjpLU2llFKF0G2HJyK/FZENIrI6lzZaRB4RkZf8+yifLiLySxFZKyKrROSQ3HfO9flfEpFz+6c4A0tELhGR50RktYjcISI7i8h4EXnSl/MuEdnJ5x3qP6/1+8fV9+xrS0R2E5G7ReQFEXleRIK+tJNmICItIvK0iCz0nwvXJkRkXxF51LeF50TkIp9eyDbRFRE5SUTW+HJfVu/zaXY9ucKbT+fcbZnLgMXW2gm49Zay/1AnAxP86wLcJKOIyGjc7NuHAW3AlVlDb1Qisg9uvahWa+0XgRbcisM/BW70dfMuMNN/ZSbwrrX2AOBGn6+Z/AJ4yFr7edysDs/Ty3bSRC7ClT9TxDaxBbjUWvsF3LyL3xeRgyhum9iOiLQAN+HKfhBwlq8j1V+std2+cHOtrc59XgOM8dtjgDV++xbgrPJ8wFnALbn0bfI14gvYB3gdGI2LZ1wITMUF0g7xeQJgkd9eBAR+e4jPJ/UuR43qYgRu+iIpS+9VO6l3OWpUF2Nxf8iP821CitgmKtRLApxQxDZRpU462oL/PBuYXe/zauZXX5/hfcZaux7Av3/ap2edQGadT+sqvWFZa9/ALW//GrAet2rvCuA9a+0Wny1fzo468Ps34SZwbQb74+bQ+52/lTdPRHah9+2kGcwBfgRkk+buTjHbRAd/q3YS8CTFbBNdKWKZ66rWg1YqTfltq6Q3LH9LNgTG42Ya3wV3a6JcVs6mq4OcIcAhwM3W2km46eWqPY9oyroQka8CG6y1K/LJFbIWoU0AICLDcWuxXWyt/U+1rBXSmqouKihimeuqrx3e2yIyBsC/b/Dp64B9c/nGAm9WSW9kxwOvWms3Wms3AwuAI4DdRCSbsi1fzo468PtHAu/QHNYB66y1T/rPd+M6wN62k0Z3JHCqiPwDuBN3W3MOxWwTiMiOuM7udmvtAp9ctDZRTRHLXFd97fDuA7KRlufSuQDgfcC3/Iirw4FN/rbFIuBEERnlr4xO9GmN7DXgcBEZJiICfAX4O/AocLrPU143WZ2dDiyx/sZ9o7PWvgW8LiIH+qSsLnrbThqatXa2tXastXYcbgDTEmvt2RSwTfh/E78BnrfW/jy3q1Btoht/Ayb4Ubw74drMfXU+p+bW3UM+4A7cM6rNuP8jmYl7zrAYt2DgYmC0zyu4UUcvA8/iRjBmv/NtYK1/nVfvh5e1eOGW0HgBt+DibcBQ3POski/nH4ChPu/O/vNav3//ep9/jetiIm4RylXAvcCovrSTZnkBU4CFfrtwbQKYjLs9twpY6V/TitwmuqinacCLvtxX1Pt8mv2lM60opZQqBJ1pRSmlVCFoh6eUUqoQtMNTSilVCNrhKaWUKgTt8JRSShWCdnhKKaUKQTs8pZRShaAdnlJKqUL4P5kGaYfcQ9cuAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Calculate the distance between each sample\n",
    "Z = hierarchy.linkage(df, 'ward')\n",
    "\n",
    "# Make the dendro\n",
    "# 画树状图\n",
    "hierarchy.dendrogram(Z, labels=df.index, leaf_rotation=0, orientation=\"left\", color_threshold=240, above_threshold_color='grey')\n",
    "\n",
    "# Create a color palette with 3 color for the 3 cyl possibilities\n",
    "# 设置渐变颜色，共三种颜色\n",
    "my_palette = plt.cm.get_cmap(\"Accent\", 3)\n",
    "\n",
    "# transforme the 'cyl' column in a categorical variable. It will allow to put one color on each level.\n",
    "# 根据cyl设置颜色参数，对参数进行分类\n",
    "df['cyl']=pd.Categorical(df['cyl'])\n",
    "# 获得每种汽车cyl对应的颜色\n",
    "my_color=df['cyl'].cat.codes\n",
    "\n",
    "# Apply the right color to each label\n",
    "ax = plt.gca()\n",
    "# 获得y轴坐标标签\n",
    "xlbls = ax.get_ymajorticklabels()\n",
    "num=-1\n",
    "for lbl in xlbls:\n",
    "    num+=1\n",
    "    val=my_color[num]\n",
    "    # 设置颜色\n",
    "    lbl.set_color(my_palette(val))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
